/**
 * 企业微信相关配置
 * 用于集中管理企业微信应用的配置信息
 */

/**
 * 企业微信应用配置
 */
const QYWX_CONFIG = {
  // 企业微信企业ID，需要在企业微信管理后台获取
  CORP_ID: 'ww4a21fff9bc29571c',
  
  // 企业微信应用ID，需要在企业微信管理后台的应用设置中获取
  AGENT_ID: '1000002',
  
  // 企业微信应用密钥，在应用管理的应用详情页面获取
  SECRET: 'lou95DDxgDhyU_0Vq-CHL6pqdB7cpFtjEWeEISAKy80',
  
  // 企业微信应用的可见范围（部门ID数组）
  VISIBLE_SCOPE: [1, 2, 3], // 例如：[1]表示全企业可见
  
  // API域名配置
  API_HOST: 'https://api.example.com',
  
  // 登录超时时间（毫秒）
  LOGIN_TIMEOUT: 15000,
  
  // 用户权限缓存时间（毫秒）
  PERMISSION_CACHE_TIME: 3600000, // 1小时
  
  // 登录令牌有效期（毫秒）
  TOKEN_EXPIRE_TIME: 86400000, // 24小时
  
  // 自动刷新登录状态的间隔（毫秒）
  AUTO_REFRESH_INTERVAL: 3600000, // 1小时
  
  // 是否启用调试模式
  DEBUG: false
};

/**
 * 企业微信API接口路径
 */
const QYWX_API = {
  // 获取访问令牌
  GET_TOKEN: 'https://qyapi.weixin.qq.com/cgi-bin/gettoken',
  
  // 获取用户信息
  GET_USER_INFO: 'https://qyapi.weixin.qq.com/cgi-bin/user/get',
  
  // 获取部门列表
  GET_DEPARTMENT_LIST: 'https://qyapi.weixin.qq.com/cgi-bin/department/list',
  
  // 获取部门成员
  GET_DEPARTMENT_USERS: 'https://qyapi.weixin.qq.com/cgi-bin/user/simplelist',
  
  // 发送应用消息
  SEND_MESSAGE: 'https://qyapi.weixin.qq.com/cgi-bin/message/send'
};

/**
 * 企业微信事件类型
 */
const QYWX_EVENT_TYPE = {
  ENTER_CHAT: 'enter_chat', // 进入会话
  USER_CLICK: 'user_click', // 用户点击
  USER_VIEW: 'user_view',   // 用户查看
  USER_SCAN: 'user_scan',   // 用户扫码
  USER_ENTER: 'user_enter', // 用户进入应用
  USER_LOCATION: 'user_location' // 用户位置上报
};

/**
 * 企业微信用户角色类型
 */
const QYWX_USER_TYPE = {
  NORMAL: 1,    // 普通成员
  LEADER: 2,    // 上级
  ADMIN: 3,     // 管理员
  SUPER_ADMIN: 4 // 超级管理员
};

/**
 * 企业微信API错误码及说明
 */
const QYWX_ERROR_CODE = {
  0: '请求成功',
  40001: 'access_token无效或已过期',
  40003: '无效的UserID',
  40013: '无效的CorpID',
  40014: '无效的access_token',
  40029: '无效的oauth_code',
  40032: '无效的userid',
  40033: '无效的部门id',
  41001: '缺少access_token参数',
  41002: '缺少corpid参数',
  41004: '缺少secret参数',
  41011: '缺少agentid参数',
  42001: 'access_token已过期',
  43004: '无效的应用类型',
  44004: '无效的应用可见范围',
  50001: '企业未授权该应用',
  60011: '用户不在应用的可见范围内',
  60020: '访问控制列表中没有配置此用户',
  65002: '不允许修改默认应用的可见范围'
};

// 导出模块
module.exports = {
  QYWX_CONFIG,
  QYWX_API,
  QYWX_EVENT_TYPE,
  QYWX_USER_TYPE,
  QYWX_ERROR_CODE
}; 